2026-10-12T09:27:38.6516470Z ##[group]Run npm run test:deploy
2026-10-12T09:27:38.6516499Z [36;1mnpm run test:deploy[0m
2026-10-12T09:27:38.6516510Z shell: /usr/bin/bash -e {0}
2026-10-12T09:27:38.6516515Z env:
2026-10-12T09:27:38.6516521Z   CARGO_TERM_COLOR: never
2026-10-12T09:27:38.6516562Z   CLOUDFLARE_ACCOUNT_ID: 1e6f2cffa3f445920836e8ebe446bb58
2026-10-12T09:27:38.6516574Z   WRANGLER_SEND_METRICS: false
2026-10-12T09:27:38.6516580Z ##[endgroup]
2026-10-12T09:27:38.7606152Z 
2026-10-12T09:27:38.7616650Z > test:deploy
2026-10-12T09:27:38.7616685Z > node --test "scripts/deploy/*.test.mjs"
2026-10-12T09:27:38.7616731Z 
2026-10-12T09:27:40.4287119Z error: no matching package named `base64` found
2026-10-12T09:27:40.4313641Z location searched: crates.io index
2026-10-12T09:27:40.4313744Z required by package `g1t-api v0.1.0 (/home/runner/work/repo/apps/api)`
2026-10-12T09:27:40.4313811Z note: offline mode (via `--offline`) can sometimes cause surprising resolution failures
2026-10-12T09:27:40.4313845Z help: if this error is too confusing you may wish to retry without `--offline`
2026-10-12T09:27:41.3131928Z ✔ the manifest matches every wrangler config in the repository (28.207134ms)
2026-10-12T09:27:41.3144484Z ✔ every wrangler.jsonc is found, and only checked-in ones (71.738341ms)
2026-10-12T09:27:41.3149960Z ✔ problems are found: an unlisted config, a later-stage binding, a wrong database, an unnamed KV (24.12483ms)
2026-10-12T09:27:41.3150034Z ✔ stages follow bindings: nothing binds to a unit that ships after it (0.976571ms)
2026-10-12T09:27:41.3150083Z ✔ inside a stage, a Worker that does not exist yet goes before those bound to it (0.675841ms)
2026-10-12T09:27:41.3154717Z ✔ Rust workers build with the shared script and the same wasm-opt level (0.971841ms)
2026-10-12T09:27:41.3155818Z ✔ shared crates and packages are read from workspace metadata (0.34228ms)
2026-10-12T09:27:41.3163153Z ✔ the runner's image is built from the runner crate and what it uses, on the base its lock names (0.34963ms)
2026-10-12T09:27:41.3170841Z ✔ services/runner/base.json records the base its folder builds (60.079231ms)
2026-10-12T09:27:41.3175970Z ✔ an image's hash ignores line endings, and its tags say what they are (134.712565ms)
2026-10-12T09:27:41.3177232Z ✔ only the lockfile entries the runner is built from name its image (0.61144ms)
2026-10-12T09:27:41.3184017Z ✔ the runner's deploy config names its image by reference, beside its wrangler.jsonc (72.082012ms)
2026-10-12T09:27:41.3184728Z ✔ the registry is asked for an image's manifest, without Docker (0.89843ms)
2026-10-12T09:27:41.3185388Z ✔ a push counts only when it ends with a digest, and is tried again (0.572441ms)
2026-10-12T09:27:41.3191792Z ✔ a static Linux binary is told from a dynamic one (0.70516ms)
2026-10-12T09:27:41.3211912Z ﹣ path dependencies agree with Cargo's own resolved graph (1031.031529ms) # cargo metadata could not resolve offline
2026-10-12T09:27:41.3212145Z ✔ every import that leaves a unit's folder is covered by its dependencies or inputs (158.736976ms)
2026-10-12T09:27:41.3212174Z ✔ a shared crate's change reaches every unit built from it, and no other (1.234101ms)
2026-10-12T09:27:41.3212196Z ✔ a shared package's change reaches what imports it (0.27378ms)
2026-10-12T09:27:41.3212217Z ✔ a crate's tests, benches and examples deploy nothing (0.975151ms)
2026-10-12T09:27:41.3270681Z ✔ a Rust file compiled only for tests is found from what declares it (1.423881ms)
2026-10-12T09:27:41.3270733Z ✔ this repository's test-only sources are read from git (701.810858ms)
2026-10-12T09:27:41.3270764Z ✔ decide: a change only to tests deploys nothing (1.440852ms)
2026-10-12T09:27:41.3270790Z ✔ own folders, declared inputs and root files (1.134321ms)
2026-10-12T09:27:41.3270812Z ✔ a Cargo.lock change reaches only crates that use what changed (0.41321ms)
2026-10-12T09:27:41.3270832Z ✔ a package-lock change reaches through workspace links (0.617471ms)
2026-10-12T09:27:41.3270853Z ✔ decide: changed units deploy, others wait, unknown ones deploy (0.34372ms)
2026-10-12T09:27:41.3270877Z ✔ decide: --force deploys unchanged units; a commit missing from history deploys (0.19971ms)
2026-10-12T09:27:41.3270901Z ✔ decide: Cargo.lock counts only where it reaches (0.622891ms)
2026-10-12T09:27:41.3270924Z ✔ decide: the runner's image rebuilds only when what it is built from changed (0.38172ms)
2026-10-12T09:27:41.3270948Z ✔ the plan as data: migrations, and each stage's units in jobs that share a build (1.383302ms)
2026-10-12T09:27:41.3270968Z ✔ units are picked by short name, folder or Worker name (0.42213ms)
2026-10-12T09:27:41.3271233Z ✔ a CI job installs only what its units need (1.179611ms)
2026-10-12T09:27:41.3271255Z ✔ a deploy is annotated with its commit, and read back (0.21763ms)
2026-10-12T09:27:41.3271276Z ✔ the live commit: the live version's, looking through secret changes (0.35139ms)
2026-10-12T09:27:41.3271298Z ✔ Wrangler's output: pending migrations and the version a deploy made (0.41587ms)
2026-10-12T09:27:41.3275630Z ✔ the API's answers: the live commit as Wrangler's would give it (1.205751ms)
2026-10-12T09:27:41.8105980Z ✔ the API's answers: a Worker never deployed, and a refusal, never throw (502.966629ms)
2026-10-12T09:27:41.8106816Z ✔ the API is used only with the token Wrangler would be given (0.7494ms)
2026-10-12T09:27:41.8110630Z ✔ pending migrations: the folder's files less the names in d1_migrations (1.562332ms)
2026-10-12T09:27:41.8329096Z ✔ the pool runs everything, no more than its limit at once (15.170893ms)
2026-10-12T09:27:41.8343418Z ✔ self-hosting builds every Rust service the manifest says it runs (0.44845ms)
2026-10-12T09:27:41.8343648Z ✔ the self-hosting architecture page names every unit (0.194ms)
2026-10-12T09:27:41.8343686Z ✔ resolveStack works on a manifest with no workspace crates or packages (5.094935ms)
2026-10-12T09:27:41.8343747Z ✔ decide: a commit older than what runs is never deployed by accident, even forced; --rollback means it (0.20478ms)
2026-10-12T09:27:41.8343792Z ✔ a deploy by hand reports to the repository on g1t, and a workflow's does not (1.228361ms)
2026-10-12T09:27:41.9555834Z ✔ webhooks: the hourly purge deletes old deliveries by time (2.286822ms)
2026-10-12T09:27:42.0881826Z ✔ billing: this month's users are read from an index, not the ledger (42.113576ms)
2026-10-12T09:27:42.0881918Z ✔ events: a repository's events of one type, newest first, page by page (2.532803ms)
2026-10-12T09:27:42.0881957Z ✔ actions: a self-hosted runner's poll finds queued jobs by namespace, whatever its case (9.700978ms)
2026-10-12T09:27:42.0881996Z ✔ chat: a channel's messages and a thread's replies, newest first, page by page (1.667191ms)
2026-10-12T09:27:42.0882046Z ✔ chat: the sidebar's unread messages are read from each channel's index, after the last read (2.628133ms)
2026-10-12T09:27:42.0882089Z ✔ chat: a page's reactions are read by message, and a workspace's emoji by name (1.687241ms)
2026-10-12T09:27:42.0882123Z scheduler: g1t-webhooks (* * * * *) is still running from the last time; skipped
2026-10-12T09:27:42.1122612Z scheduler: g1t-webhooks (* * * * *): 200 {"outcome":"exception"}
2026-10-12T09:27:42.1175004Z ✔ fields read numbers, ranges, lists and steps (1.412751ms)
2026-10-12T09:27:42.1204730Z ✔ the services' crons match when hosted g1t's would fire (1.552061ms)
2026-10-12T09:27:42.1283922Z ✔ what is due is each matching cron of each service (0.39671ms)
2026-10-12T09:27:42.2121817Z ✔ a run asks Wrangler for the handler, and a slow one is not doubled (84.984093ms)
2026-10-12T09:27:42.5932723Z ✔ a deploy is announced to status.g1t.sh with the token, and without one nothing is sent (179.219973ms)
2026-10-12T09:27:42.5978371Z ✔ an announcement that fails is a warning, never a failed deploy (0.714941ms)
2026-10-12T09:27:42.5978615Z ✔ the stages run inside the window: started before, finished after, even when they throw; a dry run says nothing (2.948442ms)
2026-10-12T09:27:42.5978651Z ✔ deploy.mjs announces every deploy, and the workflow passes it the token (0.48376ms)
2026-10-12T09:27:42.6888340Z ℹ tests 61
2026-10-12T09:27:42.6904784Z ℹ suites 0
2026-10-12T09:27:42.6905046Z ℹ pass 60
2026-10-12T09:27:42.6905314Z ℹ fail 0
2026-10-12T09:27:42.6905603Z ℹ cancelled 0
2026-10-12T09:27:42.6905831Z ℹ skipped 1
2026-10-12T09:27:42.6906051Z ℹ todo 0
2026-10-12T09:27:42.6948186Z ℹ duration_ms 3891.880247
